iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 15
0

前言

接續昨天的問題,如果要在 tab bar個分頁中互傳資料的話,我目前找到一個方法:就是先把資料存起來,讓後在另一個分頁直接讀取,那個儲存功能就是 UserDefaults,但是這個方法只適用少量的資料,如果資料量太龐大就不適合了。今天就來簡單介紹這個儲存方法。

基本介紹

儲存資料

UserDefaults 儲存資料的語法

UserDefaults.standard.set(Value: Any?, forKey: String)

在Xcode中輸入 UserDefaults.standard.set 可以看到
Value不限定格式,可以是 Bool,Int,Double,Float...

forKey就是這筆資料的名稱,資料型態就限定為String

讀取資料

UserDefaults 讀取資料的語法

UserDefaults.standard.object(forKey: String)

只有輸入指定的資料名稱,就可以撈出我們要的資料了

實作一個記住使用者姓名的 App

1.建立 Single View App 專案

2.請使用這輸入姓名

從元件庫拉一個 Text Field 元件和一個 Button 元件進Main.storyboard,並把這兩個元件用藍線拖曳進 ViewController.swift

@IBOutlet weak var textField: UITextField!

@IBAction func save(_ sender: Any) {

}

3.使用者按下按鈕後記住名字

在按鈕加入以下function

@IBAction func save(_ sender: Any) {

UserDefaults.standard.set(textField.text, forKey:"userName")

    }

4.重開App後, Text Field 顯示使用者名稱

在 ViewDidLoad 中加入以下code

override func viewDidLoad() {
        super.viewDidLoad()
        
        if let name = UserDefaults.standard.object(forKey: "userName") as? String {
            
            textField.placeholder = name
            textField.text = ""
        }
    }

textField.placeholder 是 Text Field元件中的一個屬性,可以顯示預設值,這邊我們把預設值設為使用者輸入的文字
EX. 使用者輸入 Kao,並按下按鈕。重開 App 後,就會顯示Kao。效果如下:


上一篇
Day14 - 標籤列控制器 (TabBarController)
下一篇
Day16 - 陣列及字典
系列文
無中生有-從SWIFT語法學習到iOS APP的開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言